add pagination for pai2_home_api

Brightcells 9 年之前
父节点
当前提交
e50a206d29
共有 2 个文件被更改,包括 17 次插入2 次删除
  1. 12 2
      group/views.py
  2. 5 0
      pai2/settings.py

+ 12 - 2
group/views.py

@@ -13,6 +13,7 @@ from message.models import UserMessageInfo
13 13
 
14 14
 from group.serializers import GroupInfoSerializer, GroupUserInfoSerializer, GroupPhotoInfoSerializer
15 15
 
16
+from utils.page_utils import pagination
16 17
 from utils.thumbnail_utils import make_thumb
17 18
 
18 19
 from utils.error.errno_utils import UserStatusCode, GroupStatusCode, GroupPhotoStatusCode
@@ -642,11 +643,19 @@ def thumbup_cancel_api(request):
642 643
 
643 644
 def pai2_home_api(request):
644 645
     user_id = request.POST.get('user_id', '')
646
+    page = int(request.POST.get('page', 1))
647
+    num = int(request.POST.get('num', settings.PAI2_HOME_PER_PAGE))
645 648
 
646 649
     cursor = connection.cursor()
647
-    cursor.execute(r"select T1.group_id, T2.group_name, T2.group_avatar, T3.photo_thumbnail_path, T3.comment_num, T3.thumbup_num, T3.created_at from (select * from group_groupuserinfo where user_id='%s') as T1 left outer join group_groupinfo as T2 on T1.group_id = T2.group_id left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id order by thumbup_num desc;" % user_id)
650
+    cursor.execute(r"select T1.group_id, T2.group_name, T2.group_avatar, T3.photo_thumbnail_path, T3.comment_num, T3.thumbup_num, T3.created_at from (select * from group_groupuserinfo where user_id='{user_id}') as T1 left outer join group_groupinfo as T2 on T1.group_id = T2.group_id left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id order by T3.id desc, T3.thumbup_num desc limit {offset}, {rows};".format(
651
+        user_id=user_id,
652
+        offset=0,
653
+        rows=settings.PAI2_HOME_MAX_ROWS,
654
+    ))
648 655
     rows = cursor.fetchall()
649 656
 
657
+    rows, left = pagination(rows, page, num)
658
+
650 659
     rows = [{
651 660
         'group_id': row[0],
652 661
         'group_name': row[1],
@@ -661,7 +670,8 @@ def pai2_home_api(request):
661 670
         'status': 200,
662 671
         'message': u'获取首页列表成功',
663 672
         'data': {
664
-            'photos': rows
673
+            'photos': rows,
674
+            'left': left,
665 675
         }
666 676
     })
667 677
 

+ 5 - 0
pai2/settings.py

@@ -203,6 +203,11 @@ WATERMARK_LOGO = os.path.join(PROJ_DIR, 'static/pai2/img/paiai_96_96.png').repla
203 203
 # 缩略图设置
204 204
 THUMBNAIL_MAX_WIDTH = 360
205 205
 
206
+# 分页设置
207
+PAI2_HOME_PER_PAGE = 20
208
+PAI2_HOME_MAX_PAGE = 20
209
+PAI2_HOME_MAX_ROWS = 400  # PAI2_HOME_PER_PAGE * PAI2_HOME_MAX_PAGE = 20 * 20 = 400
210
+
206 211
 # 域名设置
207 212
 DOMAIN = 'http://pai.ai'
208 213
 IMG_DOMAIN = 'http://img.pai.ai'